package org.jiuling.basics.converter;

import org.jiuling.basics.validation.Assertions;
import org.jiuling.basics.validation.ObjectVerify;

import java.util.Date;
import java.util.Set;

/**
 * 对象转换器
 * @author 紫灵
 * @date 2024年03月10日 11时11分34秒
 */
public class ObjectConverter {

    /** 私有构造函数，禁止创建对象 */
    private ObjectConverter(){}

    /**
     * 转换为字符串
     * @param obj 对象
     * @return 字符串
     */
    public static String toStr(Object obj){
        if(ObjectVerify.isNull(obj)) return null;
        // 断言对象是基础数据类型
        Assertions.isTrue("对象不是基础类型，无法进行转换！",
                ObjectVerify.isBaseType(obj) || obj instanceof Date || obj instanceof Set<?>);
        return String.valueOf(obj);
//            obj instanceof String ||
//                    obj instanceof Integer ||
//                    obj instanceof Short ||
//                    obj instanceof Long ||
//                    obj instanceof Float ||
//                    obj instanceof Double ||
//                    obj instanceof Boolean ||
//                    obj instanceof Character ||
//                    obj instanceof BigDecimal ||
//                    obj instanceof Number ||
//                    obj instanceof Byte)

//            clazz.equals(int.class) ||
//                    clazz.equals(byte.class) ||
//                    clazz.equals(long.class) ||
//                    clazz.equals(float.class) ||
//                    clazz.equals(double.class) ||
//                    clazz.equals(boolean.class) ||
//                    clazz.equals(char.class) ||
//                    clazz.equals(short.class);
    }

}
